home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
vol16n13.zip
/
ATLCTL.ZIP
/
CPAtlEdit10.h
< prev
next >
Wrap
C/C++ Source or Header
|
1997-01-25
|
961b
|
41 lines
//////////////////////////////////////////////////////////////////////////////
// CProxy_AtlEditCtlEvents
template <class T>
class CProxy_AtlEditCtlEvents : public IConnectionPointImpl<T, &DIID__AtlEditCtlEvents, CComDynamicUnkArray>
{
public:
//methods:
//_AtlEditCtlEvents : IDispatch
public:
void Validate(
BSTR Text,
VARIANT_BOOL * Valid)
{
VARIANTARG* pvars = new VARIANTARG[2];
for (int i = 0; i < 2; i++)
VariantInit(&pvars[i]);
T* pT = (T*)this;
pT->Lock();
IUnknown** pp = m_vec.begin();
while (pp < m_vec.end())
{
if (*pp != NULL)
{
pvars[1].vt = VT_BSTR;
pvars[1].bstrVal= Text;
pvars[0].vt = VT_BOOL | VT_BYREF;
pvars[0].byref= Valid;
DISPPARAMS disp = { pvars, NULL, 2, 0 };
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
}
pp++;
}
pT->Unlock();
delete[] pvars;
}
};